Skip to content

fix(board): resolve file/directory config forms; allow-list autonerves-owned keys - #176

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/workspace-config-cleanup
Sep 27, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
feature/workspace-config-cleanup

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

Two false-positive sources in the Nerves config board's orphan report (scripts/board.py):

  • File ↔ directory equivalence. The override map only compared a workspace file against a library file at the same relative path. autonerves' RecursiveConfig treats a library X.yaml top-level section f and a workspace X/f.yaml (and the reverse) as one config node, so PyAutoCTI's single visualize.yaml was never compared with autocti_workspace's visualize/ directory and 13 keys showed as orphans. resolve_in_library now walks a library the way RecursiveConfig does (a file shadows its directory, sections are directory entries, stems lowercased); prior files keep same-path matching.
  • autonerves-owned keys. The version-handshake keys autonerves itself reads from a workspace general.yaml (version.{workspace_version, minimum_library_version, workspace_version_check, python_version_check}) can never be defined by a library YAML; a NERVES_OWNED allow-list excludes them from orphans and the repo page marks them "owned by autonerves".

On the real stack: orphans 14 files / 79 keys → 12 files / 59 keys; no other override changes.

Part of PyAutoLabs/PyAutoMind#441 (workspace-config-cleanup). Companion library PRs: PyAutoLabs/PyAutoGalaxy#630, PyAutoLabs/PyAutoLens#751 (merge after Galaxy). Workspace PRs (autofit_workspace, autogalaxy_workspace, autolens_workspace, autocti_workspace) follow in the same task.

Heart YELLOW acknowledged by human (reasons: manifest drift: hub organism blurb (organs present) — 7 mismatches; manifest drift: organism-map blocks (generated) — 1 mismatch; manifest drift: workspace checkouts (manifest ↔ disk) — 1 mismatch; release validation stale: source moved since rehearsal (PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens)).

API Changes

None — internal changes only (the board script is tooling, not part of the autonerves public API).

Test Plan

  • 3 new tests in test_autonerves/test_board.py (file↔directory resolution both ways, NERVES_OWNED exclusion)
  • python -m pytest test_autonerves/ — 209 passed

Generated by the PyAutoLabs agent workflow.

🤖 Generated with Claude Code

…s; allow-list autonerves-owned keys

The override map compared a workspace file only against a library file at
the same relative path. autonerves' RecursiveConfig treats a library
`X.yaml` top-level section `f` and a workspace `X/f.yaml` (and the reverse)
as one config node, so PyAutoCTI's single visualize.yaml was never compared
with autocti_workspace's visualize/ directory and 13 keys it defines showed
as orphans. resolve_in_library now walks a library the way RecursiveConfig
does (a file shadows its directory, sections are directory entries, stems
lowercased); prior files keep same-path matching.

The version-handshake keys autonerves itself reads from a workspace's
general.yaml (version.{workspace_version, minimum_library_version,
workspace_version_check, python_version_check}) can never be defined by a
library YAML, so NERVES_OWNED excludes them from orphans and the repo page
notes them as "owned by autonerves".

On the real stack this clears 20 of the 79 orphan keys (14 files -> 12,
79 keys -> 59) and changes no other override.

Refs PyAutoLabs/PyAutoMind#441

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit 0b6e7c7 into main Sep 27, 2026
3 checks passed
@Jammy2211
Jammy2211 deleted the feature/workspace-config-cleanup branch September 27, 2026 14:20
@Jammy2211 Jammy2211 removed the pending-release PR queued for the next release build label Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant